#include "widget.h"
#include "ui_widget.h"

#include <QPushButton>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    ld=new leader(this);
    eply=new employee(this);

//建立连接:槽函数没有重载版本的 情况下可以直接连接
//    connect(ld,&leader::hungry,eply,&employee::treat);

//槽函数有重载版本的情况下，需要指明具体的槽函数
//      void (leader:: *lsig)(QString)=&leader::hungry;
//      void (employee:: *esig)(QString)=&employee::treat;

//      connect(ld,lsig,eply,esig);


//    //触发信号
//    afterWork();

//信号连接信号
        QPushButton* btn=new QPushButton("下班",this);
        this->resize(600,400);
        //无参信号和槽连接
        void (leader:: *lsig2)(void)=&leader::hungry;
        void (employee:: *esig2)(void)=&employee::treat;
        connect(ld,lsig2,eply,esig2);
        //信号连接信号：按下按钮直接触发hungry信号，不需要调用函数去触发
        connect(btn,&QPushButton::clicked,ld,lsig2);

        //断开连接
        //disconnect(ld,lsig2,eply,esig2);

//lambda表达式
        QPushButton* btnL=new QPushButton("关闭",this);
            btnL->move(100,0);
            connect(btnL,&QPushButton::clicked,[=](){
                emit ld->hungry();
                this->close();
            });

}
void Widget::afterWork()
{
    //触发无参信号
    //emit ld->hungry();

    //触发有参信号
    emit ld->hungry("野味");
}
Widget::~Widget()
{
    delete ui;
}
